/*********************************************************
 * 初学之家(http://www.g2room.com)，提供Java、Javascript（js）、Jquery、
 * 等一些工具或常用功能的实现例子代码，希望能给初学者提供学习和工作上的帮助，
 * 也希望有想提供源代码的朋友能联系我，一起努力，提供更多、更全面、更详细的
 * 一些初学代码例子及经验，帮助更多的人。
 * 
 * 我的联系方式：E-Mail：g2room@163.com
 * 网址：http://www.g2room.com
 * QQ：天涯（1173930590）
 * QQ交流群：323642758
 * 
 * 本站内容为提供各种java、javascript(JS)常用的工具源代码、实例（示例）、
 * 基本配置、教程、手册等；目前Java代码提供的工具（或转换）例子代码如下：
 * BASE64转换工具、bytes相关操作、email收发、文件操作（读写、拷贝、遍历、
 * 多线程copy等）、json格式转换、日志（Log4j）操作工具、Lucene搜索引擎的
 * 创建索引和搜索、各种不同Map的使用、定时器（Quartz）的使用例子、Socket的
 * 连接传输数据例子、WebService的例子及一些常用的工具类如String、Date及
 * JDK自带的一些工具类及函数的使用例子。
 * 
 * 说明：如需直接使用本站的例子代码，请保留此说明
 * 
 ********************************************************/
package com.g2room.io.file.op;

import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;

import org.apache.poi.poifs.filesystem.DirectoryEntry;
import org.apache.poi.poifs.filesystem.DocumentEntry;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;

/**
 * 
 * 
 * @createTime: Oct 24, 2013 8:49:28 AM
 * @author: <a href="mailto:g2room@163.com">天涯</a>
 * @version: 0.1
 * @lastVersion: 0.1
 * @updateTime:
 * @updateAuthor: <a href="mailto:g2room@163.com">天涯</a>
 * @changesSum:
 * 
 */
public class CreateWord {
	public static StringBuffer contents = new StringBuffer("<html><body>");
	public static void create(String sourthPath, String docFilePath) {
		try {
			if (!"".equals(sourthPath) && !"".equals(docFilePath)) {
				// 检查目录是否存在
				File fileDir = new File(sourthPath);
				if (fileDir.exists()) {
					System.out.println("开始生成");
					readContent(fileDir);
					contents.append("</body></html>");
					byte b[] = contents.toString().getBytes("unicode");
					ByteArrayInputStream bais = new ByteArrayInputStream(b);
					POIFSFileSystem poifs = new POIFSFileSystem();
					DirectoryEntry directory = poifs.getRoot();
					DocumentEntry documentEntry = directory.createDocument(
							"WordDocument", bais);
					FileOutputStream ostream = new FileOutputStream(docFilePath);
					poifs.writeFilesystem(ostream);
					bais.close();
					ostream.close();
					System.out.println("文件生成！");
				} else {
					System.out.println("该路径不存在！");
				}
			} else {
				System.out.println("路径不能为空！");
			}

		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public static void readContent(File f) throws IOException {
		if (f.isFile()) {
			if (f.getName().contains(".java")) {
				System.out.println(f.getName());
				System.out.println("读取文件：" + f.getName());
				InputStreamReader read = new InputStreamReader(
						new FileInputStream(f), "UTF-8");// 考虑到编码格式
				BufferedReader bufferedReader = new BufferedReader(read);
				String lineTxt = null;
				while ((lineTxt = bufferedReader.readLine()) != null) {
					contents.append("<p>"+lineTxt+"</p>");
				}
				read.close();
			}
		}
		if (f.isDirectory()) {
			File[] ss = f.listFiles();
			for (int i = 0; i < ss.length; i++) {
				readContent(ss[i]);
			}
		}
	}
	public static void main(String[] args) throws Exception {
		create("E:/资料/方正/SVN/codebasesystem/CodeCenterManagerSystem/code", "E:/var/test/word/state.doc");

	}
}
